Alteryx Designerのチュートリアルを全部試してみた #alteryx #15 | Alteryx Advent Calendar 2016
こんにちは。DI部 三上です。
当エントリは『Alteryx Advent Calendar 2016』の15日目のエントリです。
Alteryx Designerをさわってみました!
はじめに
三上@当エントリ執筆者のSpec:「Alteryxって、何ですか?」(あせ
・・・。
→まずはお勉強をば。。
- データブレンディング&予測分析ツール『Alteryx』の米国:Alteryx社とのパートナーシップ締結に関するお知らせ
- Alteryxで何が出来るのか – 実行可能タスク全197種 概要紹介&リファレンスまとめ #alteryx
- 『Tableauとのデータブレンディングを高速化するAlteryxの6つ(+α)のステップ』を読んでみた
→なにやらいろいろできそう@@!
習うより慣れろ!
で、チュートリアル、やってみました。
やってみよう
動作環境
- OS:Windows 10(Mac Sierra(10.12.1) VMware Fusion)
- Alteryx Designer Version:10.6.8.17850
- Redshift Cluster Version:1.0.1125
Tutorial 01:データ準備
AlteryxにデータをInputします。
今回は、郵便番号データをcsvファイルから読み込んでみます。
- レコード数:約12万件
日本郵政のダウンロードページから、「全国一括」データをダウンロードしました。
Alteryxを立ち上げて、[File] > [New Workflow] > [Input Data]アイコンを配置します。
ダウンロードしておいた郵便番号のcsvを選択して開きます。
→文字化けしとる。。(S-JISですものね。。。orz
そんなときには、エンコードマクロを使います!
※マクロ展開してできた _externals\1配下のファイルを置き換えて、ツール登録しました。
→登録したマクロを配置して、Inputファイルを選択します。
→Selectをつなげます。
→実行。
→文字化けなおったー!v
- 実行時間:3.7 sec
csvからデータをInputできました。
Tutorial 02:データをフィルタリング
データをフィルタリング&ソートします。
フィルタリングとソートに使用するカラム名を変更しておきます。
→Filterアイコンを配置します。
→Filter条件を設定します。
今回は、東京都のデータのみ抽出してみます。
→FilterアイコンのTrueの先に、Sortアイコンを配置します。
→Sort条件を設定します。
郵便番号の昇順を設定しました。
→実行。
FilterのTrueタブに、東京都のデータのみが抽出されています。
SortのOutputタブを見ると、ちゃんと郵便番号の昇順に並び替えられてます。
- 実行時間:3.8 sec
フィルタリングとソートができました。
Tutorial 03:データをブレンディング
別ソースのデータをブレンディングします。
今回は、郵便番号データに住所CD、都道府県CD、市区町村CD、町域CDを付与してみます。
住所.jpから、全国の住所データをダウンロードしました。
- レコード数:約15万件
郵便番号データから、郵便番号と住所情報を抽出します。
→住所データから、付与したいコードとフィルター条件に指定したいカラムを抽出します
→住所データから、東京都の有効なデータをフィルタリングします。
→郵便番号をキーにしてJOINしたいのですが、住所データの郵便番号にはハイフンが入っていました。。
Formulaアイコンをつなげて、ハイフンを除去します。
※Formulaツールで使用できる式は、configウィンドウの「Function」タブから選択できます。
→Joinアイコンを配置して、結合条件を設定します。
→最後に、sortをつなげて、実行。
→郵便番号+住所データが取得できました!
- 実行時間:9.4 sec
※ただし、この実行時間はS-JIS→UTF8変換マクロ(β版)が占める割合が大きいと思われます。
ワークフロー実行中、それぞれのアイコンにプログレス表示が出ますが、
各マクロ実行時間が約3sec(体感)
→文字コード変換なしの場合の実行時間は3.4secほどでしょうか。
以下、個人的趣味ですが。。
RDB@MariaDB(10.1.19)からデータ抽出する場合と、実行時間を比較してみました。
- 郵便番号データをLOAD
create table m_postal_code( id varchar(255), code_pre varchar(255), code varchar(255), pref_kana varchar(255), city_kana varchar(255), addr_kana varchar(255), pref varchar(255), city varchar(255), addr varchar(255), col1 varchar(255), col2 varchar(255), col3 varchar(255), col4 varchar(255), col5 varchar(255), col6 varchar(255), PRIMARY KEY(code, addr) );
load data local infile 'C:/Users/mikami.yuki/KEN_ALL.CSV' into table m_postal_code fields terminated by ',' enclosed by '"';
- 住所データをLOAD
create table m_addr( addr_cd varchar(255), pref_cd varchar(255), city_cd varchar(255), area_cd varchar(255), postal_cd varchar(255), office_cd varchar(255), delete_flg varchar(255), pref varchar(255), pref_kana varchar(255), city varchar(255), city_kana varchar(255), addr varchar(255), addr_kana varchar(255), addr_description varchar(255), col1 varchar(255), col2 varchar(255), col3 varchar(255), col4 varchar(255), col5 varchar(255), col6 varchar(255), col7 varchar(255), col8 varchar(255), PRIMARY KEY(postal_cd, addr) );
load data local infile 'C:/Users/mikami.yuki/zenkoku.csv' into table m_addr fields terminated by ',' enclosed by '"' ignore 1 lines;
- SQLクエリ実行
select p.code, a.addr_cd, a.pref_cd, a.city_cd, a.area_cd, p.pref_kana, p.city_kana, p.addr_kana, p.pref, p.city, p.addr from m_postal_code p inner join ( select addr_cd, pref_cd, city_cd, area_cd, replace(postal_cd, "-", "") as postal_cd from m_addr where delete_flg = "0" and pref = "東京都" ) a on p.code = a.postal_cd where pref = "東京都" order by p.code ;
- 実行時間:約1 sec
あ、案外早かった。。(10万件レベルなら、RDS許容範囲ですし、ね。。
Tutorial 04〜08:データ分析 & GUIやマクロをつくる
Alteryxの本領発揮(?!)
Inputしたデータを分析できます!
ドロップダウンリストやチェックボックスなどのGUIも簡単に追加でき、分析対象を選択できます!
詳しくは、先輩がたのブログでもご紹介中です。
Alteryx Advent Calendar 2016 - Qiita
個人的には、緯度経度データからの位置情報の可視化にちょっと感動v
Tutorial 09:データベース接続
DBからデータを抽出します。
まずは、Redshiftに接続してみます。
全国の郵便番号データを、Redshiftに入れました。
ODBC(Open Database Connectivity)で接続するので、RedshiftのODBCをインストールしておきます。
「In-Database」タブから「Connect In-DB」アイコンを配置して、「Connection Name」プルダウンから「Manage Connections...」をクリック。
ポップアップ表示されたManage In-DB Connectionsウインドウで以下を設定します。
- 「Data Source」プルダウンから「Amazon Redshift」を選択
- 「Connections」の「New」ボタンをクリック
- 「Connections String」プルダウンで「New database connection...」をクリック
Redshift ODBC Connectionウィンドウがポップアップ表示されるので、「ODBC Admin」ボタンをクリック。
ODBCデータソースアドミニストレーターで「追加」ボタンをクリックし、インストール済みのRedshiftのODBCを選択→「完了」ボタンをクリック。
接続先情報を入力して「OK」ボタンをクリック
追加したデータソースを選択して「OK」ボタンで戻ります。
Redshift ODBC Connectionウィンドウの「Redshift Data Source Name」プルダウンにデータソースが追加されているので、選択してOK。
Manage In-DB Connectionsウインドウの「Write」タブの「Driver」でも「Same as Read Driver」を選択しておきます。
Choose Table or Specify Queryウィンドウが表示されるので、テーブルを選択(またはクエリを入力)してOK。
Browsw In-DBをつないで実行してみると、
Redshiftのデータが取得できました!
→Filter In-DBで、東京都のレコードだけ抽出します。
これにcsvファイルから住所データをブレンディングしてみます。
csvからInputのワークフローを作成したら、Data Stream Inをつなげて、Inする先を設定。
今回はRedshiftのtest_alteryxテーブルに上書きで入れますが、データソースは変更可能でテンポラリテーブル指定もできます。
ワークフロー実行時、ここで指定した先にちゃんとデータがInsertされていました。
→Inner Joinで結合条件を指定します。
その先にData Stream Outをつなげれば、またAlteryx上でデータの分析や整形ができます。
ちなみに・・
Redshiftのデータを先にStream Outしてからの結合も、もちろん可能。
Redshiftに一回データを入れて → また出して、の手間がない分、実行時間も随分違いました。
※前者:約3min / 後者:約8sec
- outer joinで結合したい
- サマリー結果をDBに残したい
などの場合は前者のフローにすべきかと思いますが、用途に合わせてワークフローも自由に作成可能です。
まとめ(所感)
- 感覚的に簡単に操作できました。
- ワークフローが可視化され、実行中のプログレス表示もあるので、わかりやすかったです。
- ツール(できること)が多い!(嬉しいやら、混乱するやら。。@@;
- ツールによっては指定条件の型制限(先に型を変更しなければならない)などあるため、慣れるまでは大変。。
- 公式がまだ英語だけなので、日本語ヘルプが(ごにょごにょ。。
→当ブログでも今後もAlteryx関連ドキュメント、充実させてまいります!
明日16日目はtruestarさんの『Alteryxで調査データをTableau用データに加工してみた』の予定です。
明日もお楽しみに!